/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Expertos;

import Entidades.Operaciones;
import Entidades.Perfil;
import Entidades.Perfil_Operacion;
import Persistencia.JPAControllerPerfil;
import Persistencia.JpaController;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author diego
 */
public class ExpertoPerfil {

    Perfil_Operacion po = new Perfil_Operacion();
    Perfil c = new Perfil();

    public List<Perfil> buscarPerfil() {
        List<Perfil> listaperfil;
        JPAControllerPerfil jpap = new JPAControllerPerfil();
        listaperfil = jpap.buscarPorVigencia(true);
        return listaperfil;
    }

    public List<Perfil> buscarPerfilXid(Integer idPerfil) {
        List<Perfil> listaperfil;
        JPAControllerPerfil jpap = new JPAControllerPerfil();
        listaperfil = jpap.buscarPorid(idPerfil);
        return listaperfil;
    }

    public void modificarPerfil(Perfil c, String descripcion) {
        JpaController jpa = new JpaController();
        c.setDescripcionPerfil(descripcion);
        jpa.begin();
        jpa.edit(c);
        jpa.commit();
    }

    public Perfil nuevoPerfil(String nombrePerfil, String descripcion) {
        JpaController jpa = new JpaController();
        c.setNombrePerfil(nombrePerfil);
        c.setDescripcionPerfil(descripcion);
        c.setVigentePerfil(true);
        jpa.begin();
        jpa.create(c);
        jpa.commit();
        return c;
    }

    public List<Perfil_Operacion> nuevoPerfilOperacion(List<Operaciones> lo) {
        JpaController jpa = new JpaController();
        List<Perfil_Operacion> npo = new ArrayList<Perfil_Operacion>(lo.size());
        jpa.begin();
        for (int i = 0; i < lo.size(); i++) {
            Perfil_Operacion np = new Perfil_Operacion();
            np.setIdPerfil(c);
            np.setIdOperaciones(lo.get(i));
            jpa.create(np);
            npo.add(np);
        }
        jpa.commit();
        return npo;
    }

    public List<Perfil_Operacion> eliminarPerfilOperacion(Perfil idPerfil, List<Operaciones> lo) {
        JPAControllerPerfil jpa = new JPAControllerPerfil();
        List<Perfil_Operacion> npo2 = new ArrayList<Perfil_Operacion>(lo.size());
        jpa.begin();
        jpa.borrarPerfilesOperacionesViejos(idPerfil);
        for (int i = 0; i < lo.size(); i++) {
            Perfil_Operacion po2 = new Perfil_Operacion();
            po2.setIdPerfil(idPerfil);
            po2.setIdOperaciones(lo.get(i));
            jpa.create(po2);
            npo2.add(po2);
        }
        jpa.commit();
        return npo2;
    }

    public List<Perfil> buscarPerfilNombre(String nombre) {
        List<Perfil> listaPerfil;
        JPAControllerPerfil jpap = new JPAControllerPerfil();
        listaPerfil = jpap.buscarPorNombre(nombre);
        return listaPerfil;
    }

    public void eliminarPerfil(Perfil c) {
        JpaController jpa = new JpaController();
        c.setVigentePerfil(false);
        jpa.begin();
        jpa.edit(c);
        jpa.commit();
    }
}
